﻿Imports System.Data.SqlClient
Imports System.String

Public Class frmAgregarPaciente
    Dim numero As Integer
    Private Sub frmAgregarPaciente_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        'TODO: esta línea de código carga datos en la tabla 'LabCDMDataSet.Paciente' Puede moverla o quitarla según sea necesario.
        Me.PacienteTableAdapter.Fill(Me.LabCDMDataSet.Paciente)
        'TODO: esta línea de código carga datos en la tabla 'LabCDMDataSet.Tipo_Paciente' Puede moverla o quitarla según sea necesario.
        Me.Tipo_PacienteTableAdapter.Fill(Me.LabCDMDataSet.Tipo_Paciente)
        'TODO: esta línea de código carga datos en la tabla 'LabCDMDataSet.Sexo' Puede moverla o quitarla según sea necesario.
        Me.SexoTableAdapter.Fill(Me.LabCDMDataSet.Sexo)
        'TODO: esta línea de código carga datos en la tabla 'LabCDMDataSet.Paciente' Puede moverla o quitarla según sea necesario.
        Me.PacienteTableAdapter.Fill(Me.LabCDMDataSet.Paciente)

    End Sub

    Private Sub btnGuardar_Click(sender As Object, e As EventArgs) Handles btnGuardar.Click
        Call GenerarCodPaciente()
        Dim correlativo As String = Date.Today.Year & numero.ToString("00000")
        Dim telefono, rnp As String
        If Me.txtTelefono.EditValue IsNot Nothing Then
            telefono = Me.txtTelefono.EditValue.ToString
        Else
            telefono = " "
        End If
        If Me.txtIdentidad.EditValue IsNot Nothing Then
            rnp = Me.txtIdentidad.EditValue.ToString
        Else
            rnp = " "
        End If
        If Me.txtNombres.EditValue IsNot Nothing And Me.txtApellidos.EditValue IsNot Nothing And Me.cboSexo.Text IsNot "[Vacío]" And Me.cboTipoPaciente.Text IsNot "[Vacío]" And Me.dtpFechaNacimiento.EditValue IsNot Nothing Then
            Me.PacienteTableAdapter.Insert(correlativo, Me.txtNombres.EditValue.ToString, Me.txtApellidos.EditValue.ToString, CDate(Me.dtpFechaNacimiento.EditValue), CInt(Me.cboSexo.EditValue), telefono, CInt(Me.cboTipoPaciente.EditValue), rnp)
            MessageBox.Show("Se ha agregado correctamente el paciente a los registros.", varTitulo, MessageBoxButtons.OK, MessageBoxIcon.Information)
            Me.Dispose()
            Me.Close()
        Else
            MessageBox.Show("¡No se han ingresado todos los datos!, Llene los datos faltantes e intentelo de nuevo.", varTitulo, MessageBoxButtons.OK, MessageBoxIcon.Error)
        End If
    End Sub

    Private Sub btnCerrar_Click(sender As Object, e As EventArgs) Handles btnCerrar.Click
        Me.Dispose()
        Me.Close()
    End Sub

    Private Sub GenerarCodPaciente()
        Try
            If varConexion.State = ConnectionState.Open Then
                varConexion.Close()
            End If
            varConexion.Open()

            Dim sql As String = String.Format("SELECT COUNT(*) AS Total FROM Paciente")
            Dim cmd As New SqlCommand(sql, varConexion)
            Dim reader As SqlDataReader = cmd.ExecuteReader

            If reader.Read Then
                If CInt(reader.Item("Total")) = 0 Then
                    numero = 1
                Else
                    numero = CInt(reader.Item("Total")) + 1
                End If
            End If

            varConexion.Close()
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub
End Class